﻿//-----------------------------------------------------------------------
// <copyright>
// This file is subject to the terms and conditions of the Microsoft Public License (MS-PL).
// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL for more details.
// </copyright>
//----------------------------------------------------------------------- 
namespace Fulcrum.ViewModelGenerator
{
    #region Usings
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    #endregion Usings

    public enum PropertyVisibility
    {
        Public,
        Private,
        Protected
    }

    public enum PropertyComparison
    {
        Equals,
        StringCompare,
        ReferenceEquals,
        Custom
    }

    public interface IViewModelPropertyConfiguration
    {
        string Name { get; }
        string FieldName { get; }
        string Type { get; }
        string DefaultValue { get; }
        
        bool IsValidated { get; }
        PropertyVisibility SetPropertyVisibility { get; }

        PropertyComparison Comparison { get; }
        StringComparison StringComparison { get; }

        bool IsSerializable { get; }

        string Summary { get; }
        string Remarks { get; }
    }
}
